package cn.edu.sgu.www.mhxysy.service.chongwu;

import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuNeidanCategoryDTO;
import cn.edu.sgu.www.mhxysy.entity.chongwu.ChongwuNeidanCategory;
import cn.edu.sgu.www.mhxysy.pager.chongwu.ChongwuNeidanCategoryPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface ChongwuNeidanCategoryService {

	/**
	 * 一键下载图片
	 * @throws IOException HttpServletResponse.getOutputStream()抛出的异常
	 */
	void download() throws IOException;

	/**
	 * 文件上传
	 * @param file MultipartFile对象
	 * @return String 文件名
	 * @throws IOException uploadUtils.upload()方法申明抛出的异常
	 */
	String upload(MultipartFile file) throws IOException;

	/**
	 * 添加宠物内丹类型
	 * @param chongwuNeidanCategoryDTO 内丹类型信息
	 */
	void insert(ChongwuNeidanCategoryDTO chongwuNeidanCategoryDTO);

	/**
	 * 通过ID修改宠物内丹类型
	 * @param chongwuNeidanCategoryDTO 内丹类型
	 */
	void updateById(ChongwuNeidanCategoryDTO chongwuNeidanCategoryDTO);

	/**
	 * 通过ID修改宠物内丹类型图片
	 * @param id 宠物内丹类型ID
	 * @param image 图片地址
	 */
	void updateImageById(Integer id, String image);

	/**
	 * 查询全部内丹类型
	 * @return List<ChongwuNeidanCategory>
	 */
	List<ChongwuNeidanCategory> selectAll();

	/**
	 * 通过ID查询内丹类型信息
	 * @param id 宠物内丹类型ID
	 * @return ChongwuNeidanCategory
	 */
	ChongwuNeidanCategory selectById(Integer id);

	/**
	 * 通过宠物类型ID查询宠物内丹类型
	 * @param chongwuId 宠物类型ID
	 * @return ChongwuNeidanCategory
	 */
	ChongwuNeidanCategory selectByChongwuId(Integer chongwuId);

	/**
	 * 分页查询内丹类型列表
	 * @param pager 分页参数
	 * @return Page<ChongwuNeidanCategory>
	 */
	Page<ChongwuNeidanCategory> selectByPage(ChongwuNeidanCategoryPager pager);

	/**
	 * 通过内丹类型查询宠物内丹类型列表
	 * @param type 内丹类型
	 * @param chongwuId 宠物类型ID
	 * @return List<ChongwuNeidanCategory>
	 */
	List<ChongwuNeidanCategory> selectList(Integer type, Integer chongwuId);
}